home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #4 / Amiga Plus CD - 2000 - No. 4.iso / Tools / Musik / Misc / Amster / Source / panel.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-27  |  8.1 KB  |  252 lines

  1. /*
  2. ** Panel
  3. */
  4.  
  5. #include "include/config.h"
  6.  
  7. #include "include/gui.h"
  8. #include "include/panel.h"
  9. #include "include/download.h"
  10. #include "include/info.h"
  11. #include "include/share.h"
  12. #include "include/msg.h"
  13. #include "include/chat.h"
  14. #include "include/about.h"
  15. #include "include/prefs.h"
  16. #include "pix/logo.h"
  17. #include "pix/infoicon.h"
  18. #include "pix/msgicon.h"
  19. #include "pix/chaticon.h"
  20. #include "pix/dlicon.h"
  21. #include "pix/shareicon.h"
  22. #include "pix/prficon.h"
  23. #include "amster_Cat.h"
  24.  
  25. ULONG panel_new(struct IClass *cl, Object *obj, struct opSet *msg);
  26. extern struct Hook handleHook;
  27.  
  28.  
  29. MUIF panel_dispatch(REG(a0) struct IClass *cl,REG(a2) Object *obj,REG(a1) Msg msg)
  30. {
  31.     u_long tmp;
  32.     struct paneldata *data = INST_DATA(cl,obj);;
  33.  
  34.     switch(msg->MethodID) {
  35.         case OM_NEW: return(panel_new(cl,obj,(APTR)msg));
  36.         case PANEL_OPENABOUT:
  37.             set(data->logo,MUIA_Selected,FALSE);
  38.             set(gui->awin,MUIA_Window_Open,TRUE);
  39.             return(NULL);
  40.         case PANEL_OPENDEBUG:
  41.             GetAttr(MUIA_Selected,data->infoicon,&tmp);
  42.             if(tmp!=TRUE) set(data->infoicon,MUIA_Selected,TRUE);
  43.             set(gui->iwin,MUIA_Window_Open,TRUE);
  44.             return(NULL);
  45.         case PANEL_CLOSEDEBUG:
  46.             GetAttr(MUIA_Selected,data->infoicon,&tmp);
  47.             if(tmp!=FALSE) set(data->infoicon,MUIA_Selected,FALSE);
  48.             set(gui->iwin,MUIA_Window_Open,FALSE);
  49.             return(NULL);
  50.         case PANEL_OPENDL:
  51.             GetAttr(MUIA_Selected,data->dlicon,&tmp);
  52.             if(tmp!=TRUE) set(data->dlicon,MUIA_Selected,TRUE);
  53.             set(gui->dwin,MUIA_Window_Open,TRUE);
  54.             return(NULL);
  55.         case PANEL_CLOSEDL:
  56.             GetAttr(MUIA_Selected,data->dlicon,&tmp);
  57.             if(tmp!=FALSE) set(data->dlicon,MUIA_Selected,FALSE);
  58.             set(gui->dwin,MUIA_Window_Open,FALSE);
  59.             return(NULL);
  60.         case PANEL_OPENSHARE:
  61.             GetAttr(MUIA_Selected,data->shareicon,&tmp);
  62.             if(tmp!=TRUE) set(data->shareicon,MUIA_Selected,TRUE);
  63.             DoMethod(gui->shwin,SHARE_OPEN);
  64.             return(NULL);
  65.         case PANEL_CLOSESHARE:
  66.             GetAttr(MUIA_Selected,data->shareicon,&tmp);
  67.             if(tmp!=FALSE) set(data->shareicon,MUIA_Selected,FALSE);
  68.             DoMethod(gui->shwin,SHARE_CLOSE);
  69.             return(NULL);
  70.         case PANEL_OPENPRF:
  71.             GetAttr(MUIA_Selected,data->prficon,&tmp);
  72.             if(tmp!=TRUE) set(data->prficon,MUIA_Selected,TRUE);
  73.             DoMethod(gui->swin,PRF_OPEN);
  74.             return(NULL);
  75.         case PANEL_CLOSEPRF:
  76.             GetAttr(MUIA_Selected,data->prficon,&tmp);
  77.             if(tmp!=FALSE) set(data->prficon,MUIA_Selected,FALSE);
  78.             DoMethod(gui->swin,(ULONG)(((muimsg)msg)->arg1));
  79.             return(NULL);
  80.         case PANEL_OPENMSG:
  81.             DoMethod(gui->mwin,MSG_OPEN);
  82.             return(NULL);
  83.         case PANEL_NEWCHAT:
  84.             {
  85.             Object *win;
  86.             win = NewObject(gui->chat_mcc->mcc_Class,NULL,TAG_DONE);
  87.             if(!win) return(0);
  88.             DoMethod(gui->app,OM_ADDMEMBER,win);
  89.             set(win,MUIA_Window_Open,TRUE);
  90.             return(0);
  91.             }
  92.         case PANEL_DISPOSECHAT:
  93.             {
  94.             Object *win;
  95.             win = (Object *)(((muimsg)msg)->arg1);
  96.             if(!win) return(0);
  97.             set(win,MUIA_Window_Open,FALSE);
  98.             DoMethod(gui->app,OM_REMMEMBER,win);
  99.             MUI_DisposeObject(win);
  100.             return(0);
  101.             }
  102.  
  103.     }
  104.     return(DoSuperMethodA(cl,obj,msg));
  105. }
  106.  
  107.  
  108. ULONG panel_new(struct IClass *cl, Object *obj, struct opSet *msg)
  109. {
  110.     struct paneldata *data;
  111.     Object *logo,*infoicon,*msgicon,*chaticon,*dlicon,*shareicon,*prficon;
  112.  
  113.     if (obj = (Object *)DoSuperNew(cl,obj,
  114.         Child, VGroup,
  115.             Child, logo = BodychunkObject,
  116.                 MUIA_FixWidth, LOGO_WIDTH,
  117.                 MUIA_FixHeight, LOGO_HEIGHT,
  118.                 MUIA_Bitmap_Width, LOGO_WIDTH,
  119.                 MUIA_Bitmap_Height, LOGO_HEIGHT,
  120.                 MUIA_Bodychunk_Depth, LOGO_DEPTH,
  121.                 MUIA_Bodychunk_Body, (ULONG *)logo_body,
  122.                 MUIA_Bodychunk_Compression, LOGO_COMPRESSION,
  123.                 MUIA_Bodychunk_Masking, LOGO_MASKING,
  124.                 MUIA_Bitmap_SourceColors, (ULONG *)logo_colors,
  125.                 MUIA_Bitmap_Transparent, 0,
  126.                 MUIA_InputMode, MUIV_InputMode_Immediate,
  127.                 MUIA_ShowSelState, FALSE,
  128.             End,
  129.             Child, VSpace(0),
  130.             Child, infoicon = BodychunkObject,
  131.                 ImageButtonFrame,
  132.                 MUIA_Background, MUII_ButtonBack,
  133.                 MUIA_FixWidth, INFOICON_WIDTH,
  134.                 MUIA_FixHeight, INFOICON_HEIGHT,
  135.                 MUIA_Bitmap_Width, INFOICON_WIDTH,
  136.                 MUIA_Bitmap_Height, INFOICON_HEIGHT,
  137.                 MUIA_Bodychunk_Depth, INFOICON_DEPTH,
  138.                 MUIA_Bodychunk_Body, (ULONG *)infoicon_body,
  139.                 MUIA_Bodychunk_Compression, INFOICON_COMPRESSION,
  140.                 MUIA_Bodychunk_Masking, INFOICON_MASKING,
  141.                 MUIA_Bitmap_SourceColors, (ULONG *)infoicon_colors,
  142.                 MUIA_Bitmap_Transparent, 0,
  143.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  144.             End,
  145.             Child, VSpace(0),
  146.             Child, msgicon = BodychunkObject,
  147.                 ImageButtonFrame,
  148.                 MUIA_Background, MUII_ButtonBack,
  149.                 MUIA_FixWidth, MSGICON_WIDTH,
  150.                 MUIA_FixHeight, MSGICON_HEIGHT,
  151.                 MUIA_Bitmap_Width, MSGICON_WIDTH,
  152.                 MUIA_Bitmap_Height, MSGICON_HEIGHT,
  153.                 MUIA_Bodychunk_Depth, MSGICON_DEPTH,
  154.                 MUIA_Bodychunk_Body, (ULONG *)msgicon_body,
  155.                 MUIA_Bodychunk_Compression, MSGICON_COMPRESSION,
  156.                 MUIA_Bodychunk_Masking, MSGICON_MASKING,
  157.                 MUIA_Bitmap_SourceColors, (ULONG *)msgicon_colors,
  158.                 MUIA_Bitmap_Transparent, 0,
  159.                 MUIA_InputMode, MUIV_InputMode_RelVerify,
  160.             End,
  161.             Child, chaticon = BodychunkObject,
  162.                 ImageButtonFrame,
  163.                 MUIA_Background, MUII_ButtonBack,
  164.                 MUIA_FixWidth, CHATICON_WIDTH,
  165.                 MUIA_FixHeight, CHATICON_HEIGHT,
  166.                 MUIA_Bitmap_Width, CHATICON_WIDTH,
  167.                 MUIA_Bitmap_Height, CHATICON_HEIGHT,
  168.                 MUIA_Bodychunk_Depth, CHATICON_DEPTH,
  169.                 MUIA_Bodychunk_Body, (ULONG *)chaticon_body,
  170.                 MUIA_Bodychunk_Compression, CHATICON_COMPRESSION,
  171.                 MUIA_Bodychunk_Masking, CHATICON_MASKING,
  172.                 MUIA_Bitmap_SourceColors, (ULONG *)chaticon_colors,
  173.                 MUIA_Bitmap_Transparent, 0,
  174.                 MUIA_InputMode, MUIV_InputMode_RelVerify,
  175.             End,
  176.             Child, VSpace(0),
  177.             Child, dlicon = BodychunkObject,
  178.                 ImageButtonFrame,
  179.                 MUIA_Background, MUII_ButtonBack,
  180.                 MUIA_FixWidth, DLICON_WIDTH,
  181.                 MUIA_FixHeight, DLICON_HEIGHT,
  182.                 MUIA_Bitmap_Width, DLICON_WIDTH,
  183.                 MUIA_Bitmap_Height, DLICON_HEIGHT,
  184.                 MUIA_Bodychunk_Depth, DLICON_DEPTH,
  185.                 MUIA_Bodychunk_Body, (ULONG *)dlicon_body,
  186.                 MUIA_Bodychunk_Compression, DLICON_COMPRESSION,
  187.                 MUIA_Bodychunk_Masking, DLICON_MASKING,
  188.                 MUIA_Bitmap_SourceColors, (ULONG *)dlicon_colors,
  189.                 MUIA_Bitmap_Transparent, 0,
  190.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  191.             End,
  192.             Child, shareicon = BodychunkObject,
  193.                 ImageButtonFrame,
  194.                 MUIA_Background, MUII_ButtonBack,
  195.                 MUIA_FixWidth, SHAREICON_WIDTH,
  196.                 MUIA_FixHeight, SHAREICON_HEIGHT,
  197.                 MUIA_Bitmap_Width, SHAREICON_WIDTH,
  198.                 MUIA_Bitmap_Height, SHAREICON_HEIGHT,
  199.                 MUIA_Bodychunk_Depth, SHAREICON_DEPTH,
  200.                 MUIA_Bodychunk_Body, (ULONG *)shareicon_body,
  201.                 MUIA_Bodychunk_Compression, SHAREICON_COMPRESSION,
  202.                 MUIA_Bodychunk_Masking, SHAREICON_MASKING,
  203.                 MUIA_Bitmap_SourceColors, (ULONG *)shareicon_colors,
  204.                 MUIA_Bitmap_Transparent, 0,
  205.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  206.             End,
  207.             Child, VSpace(0),
  208.             Child, prficon = BodychunkObject,
  209.                 ImageButtonFrame,
  210.                 MUIA_Background, MUII_ButtonBack,
  211.                 MUIA_FixWidth, PRFICON_WIDTH,
  212.                 MUIA_FixHeight, PRFICON_HEIGHT,
  213.                 MUIA_Bitmap_Width, PRFICON_WIDTH,
  214.                 MUIA_Bitmap_Height, PRFICON_HEIGHT,
  215.                 MUIA_Bodychunk_Depth, PRFICON_DEPTH,
  216.                 MUIA_Bodychunk_Body, (ULONG *)prficon_body,
  217.                 MUIA_Bodychunk_Compression, PRFICON_COMPRESSION,
  218.                 MUIA_Bodychunk_Masking, PRFICON_MASKING,
  219.                 MUIA_Bitmap_SourceColors, (ULONG *)prficon_colors,
  220.                 MUIA_Bitmap_Transparent, 0,
  221.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  222.             End,
  223.             Child, VSpace(0),
  224.         End,
  225.         TAG_MORE, msg->ops_AttrList))
  226.     {
  227.         data = INST_DATA(cl,obj);
  228.         data->logo = logo;
  229.         data->infoicon = infoicon;
  230.         data->dlicon = dlicon;
  231.         data->shareicon = shareicon;
  232.         data->prficon = prficon;
  233.  
  234.         DoMethod(logo,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENABOUT);
  235.  
  236.         DoMethod(infoicon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENDEBUG);
  237.         DoMethod(infoicon,MUIM_Notify,MUIA_Selected,FALSE,obj,1,PANEL_CLOSEDEBUG);
  238.         DoMethod(dlicon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENDL);
  239.         DoMethod(dlicon,MUIM_Notify,MUIA_Selected,FALSE,obj,1,PANEL_CLOSEDL);
  240.         DoMethod(shareicon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENSHARE);
  241.         DoMethod(shareicon,MUIM_Notify,MUIA_Selected,FALSE,obj,1,PANEL_CLOSESHARE);
  242.         DoMethod(prficon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENPRF);
  243.         DoMethod(prficon,MUIM_Notify,MUIA_Selected,FALSE,obj,2,PANEL_CLOSEPRF,PRF_CANCEL);
  244.  
  245.         DoMethod(msgicon,MUIM_Notify,MUIA_Pressed,FALSE,obj,1,PANEL_OPENMSG);
  246.         DoMethod(chaticon,MUIM_Notify,MUIA_Pressed,FALSE,obj,1,PANEL_NEWCHAT);
  247.  
  248.         return((ULONG)obj);
  249.     }
  250.     return(0);
  251. }
  252.